//package com.doget.data.db;
//
//import android.app.Activity;
//import android.os.Bundle;
//import android.util.Log;
//import android.view.View;
//import android.widget.EditText;
//
//import com.doget.data.R;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import androidx.annotation.Nullable;
//import io.reactivex.Completable;
//import io.reactivex.Flowable;
//import io.reactivex.disposables.CompositeDisposable;
//import io.reactivex.functions.Action;
//import io.reactivex.functions.Consumer;
//import io.reactivex.schedulers.Schedulers;
//
//public class DaoActivity extends Activity implements View.OnClickListener {
//    public String TAG = "DaoActivity===";
//    private EditText edit_query;
//    private EditText edit_waiyu;
//
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_dao_main);
//        findViewById(R.id.add).setOnClickListener(this);
//        findViewById(R.id.upadate).setOnClickListener(this);
//        findViewById(R.id.query).setOnClickListener(this);
//        findViewById(R.id.query_by_name).setOnClickListener(this);
//        edit_query = findViewById(R.id.edit_query);
//        edit_waiyu = findViewById(R.id.edit_waiyu);
//    }
//
//    int again = 1;
//    private List<UserInfo> list = new ArrayList<>();
//
//    @Override
//    public void onClick(View v) {
//        switch (v.getId()) {
//            case R.id.add:
//
//                list.clear();
//                UserInfo user1 = new UserInfo("name001", "100", "001");
//                UserInfo user2 = new UserInfo("name001", "100", "0012");
//                UserInfo user3 = new UserInfo("name001", "3", "003");
//                UserInfo user4 = new UserInfo("name004", "100", "004");
//                UserInfo user5 = new UserInfo("name005", "3", "005");
//
//
//                Completable insert = AppDatabases.getInstance(DaoActivity.this).getUserDao().insertAll(
//                        user1, user2, user3, user4, user5);
//                addDisposable(insert, new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        Log.i(TAG, "accept:: 成功");
//                    }
//                });
//
//                break;
//            case R.id.upadate:
//                break;
//            case R.id.query:
//                Flowable<List<UserInfo>> users = AppDatabases.getInstance(DaoActivity.this).getUserDao().getAll();
//                addDisposable(users, new Consumer<List<UserInfo>>() {
//                    @Override
//                    public void accept(List<UserInfo> users) throws Exception {
//                        for (UserInfo info : users) {
//                            Log.i(TAG, "accept: " + info.toString());
//
//                        }
//                    }
//                });
//
//                break;
//            case R.id.query_by_name:
//                Flowable<List<UserInfo>> userss = AppDatabases.getInstance(DaoActivity.this).
//                        getUserDao().queryUserList(edit_query.getText().toString(),
//                        edit_waiyu.getText().toString()
//                );
//                addDisposable(userss, new Consumer<List<UserInfo>>() {
//                    @Override
//                    public void accept(List<UserInfo> users) throws Exception {
//                        for (UserInfo info : users) {
//                            Log.i(TAG, "accept: byname" + info.toString());
//
//                        }
//                    }
//                });
//                break;
//        }
//
//    }
//
//
//    private CompositeDisposable compositeDisposable = new CompositeDisposable();
//
//    public <T> void addDisposable(Flowable<T> flowable, Consumer<T> consumer) {
//        compositeDisposable.add(flowable
//                .subscribeOn(Schedulers.io())
//                .observeOn(AndroidSchedulers.mainThread())
//                .subscribe(consumer));
//    }
//
//    public <T> void addDisposable(Completable completable, Action action) {
//        compositeDisposable.add(completable
//                .subscribeOn(Schedulers.io())
//                .observeOn(AndroidSchedulers.mainThread())
//                .subscribe(action));
//    }
//
//}
